#ifndef CUBECOMMANDS_H
#define CUBECOMMANDS_H

#include <wiringSerial.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h> 
#include <iostream> 
// This file defines the commands that can be sent to each cube 
// to perform a function
// Remember to NOT exceed max command size when entering
// new commands

#define CMD_SIZE 32	// Number of chars to be max command size
#define MAX_COMMANDS 1	// Size of command vector

extern char * commandVector[MAX_COMMANDS];		// Holds the names of the commands
extern bool commandsInitialized;			// Whether or not command table has been filled
extern int  (*functionVector[MAX_COMMANDS])(void);	// Holds pointers to functions that run when commands 
							// are executed


// Function to get a command from serial and execute it
int getExCommand(int fd); 

// Returns the vector number associated with the cmd 
// given by cmdStr or -1 if it is not found
int getCmdNum(char * cmdStr); 
#endif
